package main

import "fmt"

// 测试数组是否是值传递，切片是否是引用传递

func main() {
	array := [3]int{1, 2, 3}
	array2 := array
	array[0] = 11
	fmt.Println(array)  // [11 2 3]
	fmt.Println(array2) // [1 2 3]

	s := []int{1, 2, 3}
	s2 := s // 浅拷贝
	s[0] = 11
	fmt.Println(s)  // [11 2 3]
	fmt.Println(s2) // [11 2 3]

}

// 可以看到数组是值传递，会生产一个新的对象，而切片的浅拷贝其实也是值传递，只不过引用同一个底层数组
